package w83b.w83bOperacionesPaso.w83bImpugnaciones;


import java.net.URLDecoder;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


import w83b.w83bBeans.W83bImpugnacionBean;

import w83b.w83bUtilidades.W83bUtilidadesComunes;

import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import es.ejie.frmk.infraestructura.internacionalizacion.Q70GestorMensajesi18n;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83bTablaImpugnacionesOPAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//Guardamos la accion en el contexto
		contexto.set("action",request.getParameter("action"));
		if((StringUtils.isEmpty((String)contexto.get("modoPantalla"))
				||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla")))
				&&(!"sord".equals(request.getParameter("action")))){
			W83bImpugnacionBean impugnacionesBean = new W83bImpugnacionBean();
			if("true".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))){
				impugnacionesBean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));
				
				impugnacionesBean.setNumPreavisoAnyoDesde(request.getParameter("w83bImpugnacionBean.numPreavisoAnyoDesde"));
				impugnacionesBean.setNumPreavisoAnyoHasta(request.getParameter("w83bImpugnacionBean.numPreavisoAnyoHasta"));
				impugnacionesBean.setNumPreavisoTerritorioDesde(request.getParameter("w83bImpugnacionBean.numPreavisoTerritorioDesde"));
				impugnacionesBean.setNumPreavisoTerritorioHasta(request.getParameter("w83bImpugnacionBean.numPreavisoTerritorioHasta"));
				impugnacionesBean.setNumPreavisoNumeroDesde(request.getParameter("w83bImpugnacionBean.numPreavisoNumeroDesde"));	
				impugnacionesBean.setNumPreavisoNumeroHasta(request.getParameter("w83bImpugnacionBean.numPreavisoNumeroHasta"));	
				
				impugnacionesBean.setNumImpugnacionAnyoDesde(request.getParameter("w83bImpugnacionBean.numImpugnacionAnyoDesde"));
				impugnacionesBean.setNumImpugnacionAnyoHasta(request.getParameter("w83bImpugnacionBean.numImpugnacionAnyoHasta"));
				impugnacionesBean.setNumImpugnacionTerritorioDesde(request.getParameter("w83bImpugnacionBean.numImpugnacionTerritorioDesde"));
				impugnacionesBean.setNumImpugnacionTerritorioHasta(request.getParameter("w83bImpugnacionBean.numImpugnacionTerritorioHasta"));
				impugnacionesBean.setNumImpugnacionNumeroDesde(request.getParameter("w83bImpugnacionBean.numImpugnacionNumeroDesde"));	
				impugnacionesBean.setNumImpugnacionNumeroHasta(request.getParameter("w83bImpugnacionBean.numImpugnacionNumeroHasta"));	
				
				impugnacionesBean.setNumActaAnyoDesde(request.getParameter("w83bImpugnacionBean.numActaAnyoDesde"));
				impugnacionesBean.setNumActaAnyoHasta(request.getParameter("w83bImpugnacionBean.numActaAnyoHasta"));
				impugnacionesBean.setNumActaTerritorioDesde(request.getParameter("w83bImpugnacionBean.numActaTerritorioDesde"));
				impugnacionesBean.setNumActaTerritorioHasta(request.getParameter("w83bImpugnacionBean.numActaTerritorioHasta"));
				impugnacionesBean.setNumActaNumeroDesde(request.getParameter("w83bImpugnacionBean.numActaNumeroDesde"));	
				impugnacionesBean.setNumActaNumeroHasta(request.getParameter("w83bImpugnacionBean.numActaNumeroHasta"));	
				
				impugnacionesBean.setNumLaudoAnyoDesde(request.getParameter("w83bImpugnacionBean.numLaudoAnyoDesde"));
				impugnacionesBean.setNumLaudoAnyoHasta(request.getParameter("w83bImpugnacionBean.numLaudoAnyoHasta"));
				impugnacionesBean.setNumLaudoTerritorioDesde(request.getParameter("w83bImpugnacionBean.numLaudoTerritorioDesde"));
				impugnacionesBean.setNumLaudoTerritorioHasta(request.getParameter("w83bImpugnacionBean.numLaudoTerritorioHasta"));
				impugnacionesBean.setNumLaudoNumeroDesde(request.getParameter("w83bImpugnacionBean.numLaudoNumeroDesde"));	
				impugnacionesBean.setNumLaudoNumeroHasta(request.getParameter("w83bImpugnacionBean.numLaudoNumeroHasta"));	
				
				impugnacionesBean.setFechaImpugnacionDel(request.getParameter("fechaImpugnacion_fInicio"));
				impugnacionesBean.setFechaImpugnacionHasta(request.getParameter("fechaImpugnacion_fFinal"));
				
				impugnacionesBean.setFechaLaudoDel(request.getParameter("fechaLaudo_fInicio"));
				impugnacionesBean.setFechaLaudoHasta(request.getParameter("fechaLaudo_fFinal"));
				
				impugnacionesBean.setFechaEnvioArbitroDel(request.getParameter("fechaEnvioArbitro_fInicio"));
				impugnacionesBean.setFechaEnvioArbitroHasta(request.getParameter("fechaEnvioArbitro_fFinal"));
				
				
				impugnacionesBean.setFechaDesestimientoDel(request.getParameter("fechaDesestimiento_fInicio"));
				impugnacionesBean.setFechaDesestimientoHasta(request.getParameter("fechaDesestimiento_fFinal"));
				
				impugnacionesBean.setFechaTramiteDel(request.getParameter("fechaTramite_fInicio"));
				impugnacionesBean.setFechaTramiteHasta(request.getParameter("fechaTramite_fFinal"));
				
				impugnacionesBean.setResultado(request.getParameter("w83bImpugnacionBean.resultado"));
				
				
				impugnacionesBean.setResultadoTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.resultadoTxt"),"ISO-8859-1"));
				
				impugnacionesBean.setSindicato(request.getParameter("w83bImpugnacionBean.sindicato"));
				
				impugnacionesBean.setSindicatoTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.sindicatoTxt"),"ISO-8859-1"));
				
				
				impugnacionesBean.setTipoVoz(request.getParameter("w83bImpugnacionBean.tipoVoz"));
				
				impugnacionesBean.setTipoVozTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.tipoVozTxt"),"ISO-8859-1"));
				

			
				impugnacionesBean.setVoz(request.getParameter("w83bImpugnacionBean.voz"));
				
				impugnacionesBean.setVozTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.vozTxt"),"ISO-8859-1"));
				impugnacionesBean.setVozSINO(request.getParameter("w83bImpugnacionBean.vozSINO"));
				if(W83bClsConstantes.CONSTANTE_VALIDADA.equals(request.getParameter("w83bImpugnacionBean.vozSINO")))
				{
					impugnacionesBean.setVozSINOTxt(Q70GestorMensajesi18n.getSingleton().getMessage("w83bcomun","comun.herramientas.si",(String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA)).toUpperCase());
				}else if(W83bClsConstantes.CONSTANTE_NO_VALIDADA.equals(request.getParameter("w83bImpugnacionBean.vozSINO")))
				{
					impugnacionesBean.setVozSINOTxt(Q70GestorMensajesi18n.getSingleton().getMessage("w83bcomun","comun.herramientas.no",(String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA)).toUpperCase());
				}else{
					impugnacionesBean.setVozSINOTxt(W83bClsConstantes.VACIO);
				}
						
				
			
				impugnacionesBean.setSinFechaEnvioArbitro(request.getParameter("w83bImpugnacionBean.sinFechaEnvioArbitro"));
				impugnacionesBean.setSinFechaLaudo(request.getParameter("w83bImpugnacionBean.sinFechaLaudo"));
				
				impugnacionesBean.setArbitro(request.getParameter("w83bImpugnacionBean.arbitro"));
				impugnacionesBean.setArbitroTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.arbitroTxt"),"ISO-8859-1"));
				
				
				impugnacionesBean.setTramite(request.getParameter("w83bImpugnacionBean.tramite"));
				impugnacionesBean.setTramiteTxt(URLDecoder.decode(request.getParameter("w83bImpugnacionBean.tramiteTxt"),"ISO-8859-1"));
				
				
				impugnacionesBean.setUltTramite(request.getParameter("w83bImpugnacionBean.ultTramite"));
				impugnacionesBean.setFechaTramiteDel(request.getParameter("fechaTramite_fInicio"));				
				impugnacionesBean.setFechaTramiteHasta(request.getParameter("fechaTramite_fFinal"));
				
				impugnacionesBean.getCentroTrabajo().setCifnif(request.getParameter("w83bImpugnacionBean.centroTrabajo.cifnif"));
				impugnacionesBean.getCentroTrabajo().setNumCentro(request.getParameter("w83bImpugnacionBean.centroTrabajo.numCentro"));
				impugnacionesBean.getCentroTrabajo().setRazonSocial(request.getParameter("w83bImpugnacionBean.centroTrabajo.razonSocial"));
				impugnacionesBean.getCentroTrabajo().setCodMunicipio(request.getParameter("w83bImpugnacionBean.centroTrabajo.codMunicipio"));
				impugnacionesBean.getCentroTrabajo().setCodTerritorio(request.getParameter("w83bImpugnacionBean.centroTrabajo.codTerritorio"));	
				impugnacionesBean.getCentroTrabajo().setMunicipio(request.getParameter("w83bImpugnacionBean.centroTrabajo.municipio"));
				impugnacionesBean.getCentroTrabajo().setTerritorio(request.getParameter("w83bImpugnacionBean.centroTrabajo.territorio"));	
				
					
				impugnacionesBean = (W83bImpugnacionBean)W83bUtilidadesComunes.inicializarPaginador(request, impugnacionesBean);
				
				contexto.set("w83bImpugnacionBean",impugnacionesBean);
			}else{
				impugnacionesBean = (W83bImpugnacionBean)W83bUtilidadesComunes.inicializarPaginador(request, impugnacionesBean);
				
				contexto.set("w83bImpugnacionBean",impugnacionesBean);
			}
			
		}else if(W83bClsConstantes.MODO_BUSQUEDA_CONBUSQ_INICIAL.equals(contexto.get("modoPantalla"))){
			W83bImpugnacionBean impugnacionesBean = (W83bImpugnacionBean)contexto.get("w83bImpugnacionBean");
			impugnacionesBean = (W83bImpugnacionBean)W83bUtilidadesComunes.inicializarPaginador(request, impugnacionesBean);			
			contexto.set("w83bImpugnacionBean",impugnacionesBean);
			contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
		}else if("sord".equals(request.getParameter("action"))){
			W83bImpugnacionBean impugnacionesBean = (W83bImpugnacionBean)contexto.get("w83bImpugnacionTempBean");
			impugnacionesBean = (W83bImpugnacionBean)W83bUtilidadesComunes.inicializarPaginador(request, impugnacionesBean);			
			contexto.set("w83bImpugnacionBean",impugnacionesBean);
		}else if(StringUtils.isEmpty(((W83bImpugnacionBean)contexto.get("w83bImpugnacionBean")).getSort())){
			W83bImpugnacionBean impugnacionesBean = (W83bImpugnacionBean)contexto.get("w83bImpugnacionBean");
			impugnacionesBean = (W83bImpugnacionBean)W83bUtilidadesComunes.inicializarPaginador(request, impugnacionesBean);			
			contexto.set("w83bImpugnacionBean",impugnacionesBean);
		}
		
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String action = (String)contexto.get("action");

		W83bImpugnacionBean impugnacionesBean = (W83bImpugnacionBean)contexto.get("w83bImpugnacionBean");
		
		impugnacionesBean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));
		
		
		if(null==(ArrayList)contexto.get("w83bListaImpugnaciones")){	
			contexto.set("w83bListaImpugnaciones", new ArrayList());
		}
		if(impugnacionesBean.isCambioPagina()&& !"sord".equals(action)){
			return mapping.findForward("outOP");
		}
		if((StringUtils.isEmpty(request.getParameter("lanzarBusqueda")))){
			return mapping.findForward("outOP");
		}
		else
		{
			if ("find".equals(action)
					||"sord".equals(action)){
				//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
				if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
						||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
					return mapping.findForward("find");
				}else{
					contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
					contexto.set("migas","inicio.impugnaciones.busqImpugnaciones");
					if("true".equals((String)contexto.get("busqRealizada"))){
						return mapping.findForward("find");					
					}
				}
			}
		}
		

		
		return mapping.findForward("ok");
	}

}
